1. Field of the Invention
The present invention generally relates to computer aided design (“CAD”) and, more specifically, to identifying features in CAD models.
2. Description of the Related Art
Current CAD systems typically utilize parametric feature based modeling to create computer-based models for designs. In parametric feature based modeling, a model for a design can be generally thought of as a collection of features.
A feature is a data object representing a form or a shape (such as a hole, slot, extrusion, boss, pocket, etc.) that may be incorporated into a particular model. The data object describes the mechanical properties of the feature by including shape information that generally defines the geometric requirements for the feature (e.g., how many planar faces, cylindrical faces, etc.), position information (e.g., what positional constraints are imposed on the geometric faces of the feature in relation to one another, etc.), and parametric information that can be modified to change the characteristics of a particular instance of a feature in a model (e.g., the depth of a hole, the diameter of a slot, etc.).
A model that is created in a CAD system utilizing parametric feature based modeling is stored as a history of the various operations that were performed by a designer to generate the model. In order to edit the model, a designer selects an existing feature in the model to either delete, replace or change its parameters. In response to the designer's edit, the CAD system locates the original operation relating to the selected feature in the history of the model and changes the operation accordingly (e.g., delete, replace, parameter change, etc.). The CAD system then automatically re-executes all the subsequent operations in the history in order to regenerate and display the model's geometry (i.e., the resultant 2D or 3D on-screen graphical representation of the model). The use of features and the historical based nature of parametric feature based modeling enable designers to modify models without compromising the integrity of the original design intent (i.e., maintaining the mechanical integrity of the original design by respecting the constraints of the current features in the model, etc.). For example, a complex design for an engine can be stripped down to a core engine block by removing the effects of operations in the history of the original model until only the core engine block remains. The core engine block can then be modified (e.g., shape or dimensional changes, etc.) to create a configuration of the engine that is slightly different than the original design. Upon completion of the modification, all the subsequent feature additions (e.g., addition of holes, extrusions, etc.) that were stored as operations in the history of the design are re-executed onto the modified engine block such that the mechanical soundness of the design intent in the original engine design is maintained. As such, parametric feature based modeling provides the capability to more easily create multiple configurations of a design that preserve the design intent of an original design. However, providing such capability also results in added complexity from a designer perspective. For example, a designer needs to properly understand the history of a design in order to find the appropriate operation in the history to edit the design as desired. A lack of such understanding of the history can lead to “brittle” designs that fail during regeneration of the model because edits made by a designer in the history cannot be reconciled with subsequent operations in the history. Additionally, parametric feature based modeling also requires significant computational resources due to the need to store history and regenerate geometries based on the re-execution of historical operations. As such, editing models using parametric feature based modeling can often be time-consuming.
In contrast to parametric feature based modeling, direct or explicit modeling does not maintain a history of operations and does not utilize the concept of features. Instead, a model created through direct modeling primarily consists of the geometry of the model itself. Edits made by designers are simply made directly in the geometry, without considering whether such edits may violate the mechanical integrity of an original design intent. As such, designers can very quickly and freely edit the geometry of a model without consuming significant time and computational resources to regenerate the geometry using a history of operations. However, the shape and forms in the geometry of a model created with explicit modeling are not associated with data objects (i.e., such as features) that describe the mechanical constraints and requirements of the shape or feature. As such, when a designer makes a modification to the geometry of a model, the design intent of the original model can be easily destroyed and the mechanical soundness of the model be compromised as a result of the modification.